#include <signal.h>
#include <unistd.h>

static void sig_alarm(int signo){
    
}

unsigned int sleep1(unsigned int seconds){
    /*
    if(signal(SIGALRM, sig_alarm) == SIG_ERR){
        return seconds;
    }
    */
    /*
    如果在调用sleep1之前，调用者以及才能设置了闹钟，则他会被此次儿alarm擦除
    */
    /*
    该程序修改了SIGALRM的配置，在返回前应该恢复原有的配置
    */

    /*
    在调用alarm和pause之间有竞争关系，如果alarm在pause之前超时。调用者可能会被永远挂起。
    */
    alarm(seconds);
    pause();
    return alarm(0);
}